package com.gaosai.staff.custominterface;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

/**
 * 实现自定义接口类 调用者不用关心 
 * @author willis
 *
 */
public class CustomCommUseImplCCI implements CustomCommUseInterface {
	
	/***
	 * 懒汉式单例  三步曲；
	 * 1、成员变量静态化
	 * 2、构造方法私有化
	 * 3、静态取得单例的共有方法
	 */
	
	/**成员变量静态并且私有化*/
	private static CustomCommUseImplCCI singleInstance ;
	
	/**构造方法私有化*/
	private CustomCommUseImplCCI(){} ;
	
	/**静态的公共获取单例的方法，线程安全的。**/
	public static CustomCommUseImplCCI getInstance(){
		
		if(null == singleInstance){
			synchronized (CustomCommUseImplCCI.class) {
				if(null == singleInstance){
					singleInstance = new CustomCommUseImplCCI() ;
				}
			}
		}
		
		return singleInstance ;
	}
	
	/**
	 * 跳转到界面
	 * Description:TODO
	 * @param context  上下文 
	 * @param cls  要跳转到的界面
	 * @param bundle 要携带的数据
	 */
	@Override
	public void startActivity(Context context, Class<?> cls, Bundle bundle) {

		Intent intent = new Intent(context,cls) ;
		if(null !=bundle){
			intent.putExtras(bundle);
		}
		context.startActivity(intent) ;
	}
	/**
	 * 带请求结果的请求
	 * Description:TODO
	 * @param context 上下文 
	 * @param resquestCode  请求码  大于0的整数
	 * @param cls 要跳转到的界面 class
	 * @param bundle  要携带的数据
	 */
	@Override
	public void startActivityForResult(Context context, int resquestCode,
			Class<?> cls, Bundle bundle) {
		Intent intent = new Intent(context,cls) ;
		if(null !=bundle){
			intent.putExtras(bundle);
		}
		((Activity) context).startActivityForResult(intent,resquestCode) ;
	}

}
